Bases de datos - UD2. Ejercicios. Diseño conceptual y lógico

Descargar estos ejercicios

Índice

Esquemas Entidad-Relación básicos

Paso al modelo lógico-relacional

Repaso

Entidad-Relación: Generalización / especialización

Ejercicios E/R resumen

Paso al modelo lógico-relacional resumen

SOLUCIONES

Esquemas Entidad-Relación básicos

Los pasos a seguir para obtener un esquema conceptual del modelo Entidad-Relación son:

  1. Identificar el conjunto de entidades.
  2. Identificar el conjunto de relaciones.
  3. Trazar el primer esquema.
  4. Identificar atributos. Identificaremos el atributo de cada entidad que es único, es decir, que no se repite. En el caso que no exista, tenemos la opción de crear una clave “artificial”.

✅ Ejercicio 1

Empresa

Una empresa quiere guardar información sobre la localidad en la que ha nacido cada uno de los empleados, teniendo en cuenta que:

Cada región, provincia y localidad tiene un código que la identifica y un nombre.
De los empleados debemos tener constancia de su DNI, nombre, teléfono y salario.

✅ Ejercicio 2

Universidad

Se desea simular el comportamiento de una universidad cualquiera de acuerdo con la siguiente especificación:

✅ Ejercicio 3

Calzado

Una empresa de calzado quiere guardar información de sus empleados teniendo en cuenta que:

✅ Ejercicio 4

Instalaciones

Una empresa dedicada a la instalación de dormitorios juveniles a medida quiere tener una base de datos donde se reflejen las ventas y montajes. Para ello, se tiene en cuenta:

✅ Ejercicio 5

Maratón

Dado el modelo E-R, realiza un modelo E-R totalmente equivalente en el que no haya atributos compuestos.
¿Qué atributos pueden ser identificadores o claves primarias?

G E CLASIFICACIÓN_MARATÓN A1 dorsal A1->E A2 nombre A2->E A3 tiempo A3->E A4 hora A4->A3 A5 minutos A5->A3 A6 segundos A6->A3

✅ Ejercicio 6

Temperaturas semanales

Dado el modelo E-R, realiza un modelo E-R totalmente equivalente en el que no haya atributos multivaluados.

G E TEMPERATURAS_SEMANALES A1 ciudad A1->E A2 temperaturas A2->E

✅ Ejercicio 7

Descuento

Dado el modelo E-R, realiza un modelo E-R totalmente equivalente en el que no haya atributos calculados. El precio total se calcula aplicando el IVA al resultado de aplicar el descuento al precio unitario

G E PRODUCTOS A4 descuento E->A4 A5 iva E->A5 A6 precio_final E->A6 A1 código A1->E A2 nombre A2->E A3 precio_unitario A3->E

✅ Ejercicio 8

Temperaturas en la ciudad

Dado el modelo E-R, realiza un modelo E-R totalmente equivalente en el que no haya atributos multivaluados. Ten en cuenta que no hay ninguna limitación respecto a la cantidad de temperaturas registradas por ciuidad.

G E TEMPERATURAS_CIUDADES A1 ciudad A1->E A2 temperaturas A2->E

Paso al modelo lógico-relacional

✅ Ejercicio 9

Pasa al modelo lógico relacional el esquema entidad relación creado en el ejercicio 1.

✅ Ejercicio 10

Pasa al modelo lógico relacional el esquema entidad relación creado en el ejercicio 2.

✅ Ejercicio 11

Pasa al modelo lógico relacional el esquema entidad relación creado en el ejercicio 3.

✅ Ejercicio 12

Pasa al modelo lógico relacional el esquema entidad relación creado en el ejercicio 4.

Repaso

✅ Ejercicio 13

StarTrek

Un club de fans de la famosa película StarTrek, ha decidido crear una página web donde se pueda consultar información referente a todas las películas y capítulos de la saga. El dominio startrekfans.com se redirigirá a un servidor web que consulte una base de datos con la siguiente información:

Se pide:
Realizar un diagrama entidad relación que modele el diseño de la base de datos. Puedes hacerlo en papel, con dia, con visio, o con cualquier otro software de diagramas. Una vez creado el diagrama, obtén el modelo lógico-relacional.

Entidad-Relación: Generalización / especialización

✅ Ejercicio 14

Modifica el modelo E/R de ejercicio 2 de manera que haya una generalización/especialización..

Ejercicios E/R resumen

Diseña el modelo Entidad-Relación de los siguientes sistemas de información.

✅ Ejercicio 15

Empresa naviera

Una empresa naviera gestiona los viajes de los pasajeros que efectúan sus barcos.
Su base de datos debe ser capaz de gestionar los datos de los diversos viajes que se efectúan, identificándolos con un número de viaje se desea saber el destino, la fecha de salida y la fecha de vuelta. Los barcos que efectúan los viajes se conocen por su
matrícula, su nombre, el tonelaje, el número máximo de pasajeros, fecha de entrada en servicio y fecha prevista de retirada.
La tripulación de un barco es siempre fija (no depende de cada viaje). De cada marino se almacena su cargo (capitán, contramaestre, ...), fecha de alta y salario.
De un pasajero se conoce su dni, nombre y teléfono. Los pasajeros que viajan con niños menores (que no tienen DNI) deben registrarlos a su cargo.

✅ Ejercicio 16

Red de almacenes

Una empresa, propietaria de una red de almacenes de compra-venta de piezas de repuesto para automóviles, necesita organizar la siguiente información: código de la pieza, descripción de la misma, precio de venta, vehículo donde puede instalarse, código de proveedor, dirección, tlf y precio al que suministra la pieza, código de cada uno de los almacenes de la empresa, dirección, tlf y stock (cantidad de unidades de una pieza).
Se tendrá en cuenta que:

✅ Ejercicio 17

Películas de cine

Un aficionado al cine quiere mantener una BD de las películas que tiene grabadas en DVD (nada pirata).
La información que se quiere registrar es la siguiente: Título en castellano, título original, género, año de estreno, duración de la película, nacionalidad, director, actores principales de la película, y para el director y actores, almacenaremos también el nombre, la fecha de nacimiento y muerte. Además, como las películas se graban en DVD guardaremos la marca y el modelo del DVD donde se hacen las grabaciones junto con la fecha de la grabación.
Este aficionado puede grabar más de una película en un DVD.

✅ Ejercicio 18

Federación de atletismo

La federación valenciana de atletismo ha pensado establecer una base de datos que le permita un mejor seguimiento de las competiciones entre los diferentes clubes asociados y de los atletas que desarrollan su actividad deportiva como miembros de un club determinado.

Los atletas pertenecen a un club determinado, pero pueden cambiar de club a lo largo de su vida. Se quiere tener constancia de este hecho y se desea guardar los diferentes clubes por los que han pasado.

Los clubes tienen un código identificativo y un nombre, y se encuentran en una determinada ciudad.

De los atletas se tendrán los datos típicos: NIF, nombre y apellidos.

Además, es propósito de la federación mantener información actualizada respecto a las mejores marcas de los atletas en cada una de las actividades deportivas a las que se dedican (ejemplos de actividades deportivas son: carrera 100 m, carrera 200 m, maratón, salto de altura, salto con pértiga, decatlón, etc.).

También es de interés registrar las reuniones o competiciones atléticas que tienen lugar durante el año entre los clubes.

Un encuentro de este tipo involucra a dos o más clubes (hay encuentros triangulares, cuadrangulares, etc.). Se desea registrar qué clubes han participado en cada encuentro, así como dónde y cuándo se celebraron.

Cada reunión tendrá un código identificativo y una pequeña descripción (por ejemplo, para saber si la pista es al aire libre, cubierta, o si es una combinada, etc.).

La marca de cada atleta participante en un encuentro determinado también debería estar presente en la base de datos.

Se debe tener en cuenta que un atleta puede participar en un mismo encuentro compitiendo en más de una especialidad, en cuyo caso se desea tener datos sobre las marcas de cada una.

  1. Diseñar un modelo conceptual de datos que se ajuste a los requerimientos anteriores, utilizando el modelo Entidad-Relación como notación.
  2. Transformar el modelo conceptual anterior en un modelo lógico relacional.

✅ Ejercicio 19

Los animales hacen dieta

En una determinada granja se desea mantener la información correspondiente a la alimentación que se suministra a los animales que en ella se crían.

El control y seguimiento de la alimentación que se proporciona a cada animal tiene como objetivo el estudio y análisis de los resultados de la producción y el beneficio que se obtiene de los animales.

Cada uno de los animales tiene un código asociado que puede estar impreso en la oreja o en el lomo.

De un animal interesa almacenar la especie a la que pertenece, su utilidad, y la cantidad de productos que produce (litros de leche, número de huevos por día, etc.).

Cada animal sigue una dieta alimentaria basada en una serie de criterios determinados por los veterinarios.

Una dieta es el conjunto de alimentos que recibe un animal a lo largo del día.

Cada animal sigue una y solo una dieta a la vez.

La dieta seguida por cada uno de los animales de la granja puede ser modificada a lo largo de su vida, siendo de interés para los veterinarios el conocimiento de esta información.

Una dieta se establece para un animal y no para todos los animales de la misma especie.

Una misma dieta puede ser seguida al mismo tiempo por varios animales de la granja.

Cada dieta está compuesta por una serie de alimentos que son ingeridos por los animales en diferentes comidas a lo largo del día.

De una comida interesa saber el nombre que se le ha dado (desayuno, comida, cena, ...) y la hora en la que empieza y la hora a la que termina.

En cada comida, cada uno de los animales ingiere unas cantidades determinadas de uno o varios alimentos.

De los alimentos interesa guardar su nombre, su tipo (fruta, carne, ...), la unidad en la que se mide (litros, kg, ...), el precio de coste por unidad de medida y la cantidad de nutrientes que contiene cada uno de ellos.

Un alimento puede contener más de un nutriente.

De los nutrientes se almacenará su nombre, su unidad de medida y su estado.

  1. Diseñar un modelo conceptual de datos que se ajuste a los requerimientos anteriores, utilizando el modelo Entidad-Relación como notación.
  2. Transformar el modelo conceptual anterior en un modelo lógico relacional.

✅ Ejercicio 20

Empresa de mercancías

Se quiere diseñar una base de datos para facilitar la gestión de una empresa dedicada al transporte internacional de mercancías y que opera en el ámbito europeo.

La empresa dispone de varias delegaciones repartidas por toda la geografía europea. Las delegaciones se identifican por un nombre, y se quiere almacenar también su teléfono y la ciudad donde está situada.

El personal de la empresa se puede separar en 2 grandes grupos:

De todo el personal de la empresa queremos saber su código de empleado, el nombre, el teléfono y el año de nacimiento.

Todos los empleados están asignados a una delegación determinada. Se quiere tener constancia histórica de este hecho, teniendo en cuenta que pueden cambiar de delegación (y volver a una delegación en la que habían trabajado anteriormente).

La actividad de la empresa consiste en efectuar los viajes pertinentes para transportar las mercancías según las peticiones de sus clientes. Todo los clientes se identifican por un código de cliente. También querremos saber su nombre y el teléfono de contacto.

La empresa dispone de muchos camiones identificados por un código. Se quiere saber la matrícula, marca y tara de los camiones.

Los viajes los organiza siempre una delegación y se identifican por un código de viaje, que es interno para cada delegación (se puede repetir en delegaciones diferentes). Para cada uno de los viajes interesa saber:

  1. Diseñar un modelo conceptual de datos que se ajuste a los requerimientos anteriores, utilizando el modelo Entidad-Relación como notación.
  2. Transformar el modelo conceptual anterior en un modelo lógico relacional.

Paso al modelo lógico-relacional resumen

✅ Ejercicio 21

Pasa al modelo lógico-relacional el siguiente modelo entidad-relación

viajes

SOLUCIONES

✅ Solución Ejercicio 1

empresa

✅ Solución Ejercicio 2

universidad

✅ Solución Ejercicio 3

calzado

✅ Solución Ejercicio 4

Opción A

instalaciones

Opción B

instalaciones

Opción C

instalaciones

✅ Solución Ejercicio 5

maraton

✅ Solución Ejercicio 6

temperaturas semanales

✅ Solución Ejercicio 7

descuento

✅ Solución Ejercicio 8

temperaturas en la ciudad

✅ Solución Ejercicio 9

empresa

🔑 Modelo lógico-relacional

REGIONES(codigo, nom_region)

PROVINCIAS(codigo, nom_provincia, regio)
CF: regio → REGIONES

LOCALIDADES(codigo, nom_localidad, provincia)
CF: provincia → PROVINCIAS

EMPLEADOS(nif, nom_empleado, salario, localidad)
CF: localidad → LOCALIDADES

✅ Solución Ejercicio 10

universidad

🔑 Modelo lógico-relacional

DEPARTAMENTOS(codigo, nom_dpto)

ALUMNOS(dni, nom_alumno, apellido11, apellido2, calle, ciudad, provincia,estado_civil, telefono, fec_nac, observaciones)

PERIODOS(codigo, descripcion)

PROFESORES(dni, nom_profesor, apellidos, titulacion, departamento)
CF: departamento → DEPARTAMENTOS

ASIGNATURAS(codigo, nom_asignatura, creditos, observaciones, profesor)
CF: profesor → PROFESORES

EVALUAR( alumno, asignatura, periodo, nota)
CF: alumno → ALUMNOS
CF: asignatura → ASIGNATURAS
CF: periodo → PERIODOS

✅ Solución Ejercicio 11

calzado

🔑 Modelo lógico-relacional

EMPLEADOS(idempleado, nombre, telefono, salario, departamento)
CF: departamento → DEPARTAMENTOS

DEPARTAMENTOS(codigo, nombre, localidad, jefe)
CF: jefe → DEPARTAMENTOS

✅ Solución Ejercicio 12

instalaciones

🔑 Modelo lógico-relacional

MONTADORES(nif, nombre, telefono, direccion)

CLIENTES(nif, nom_cliente, telf_cliente, dir_cliente)

MODELOS_DORMITORIO(codigo, nom_modelo)

FECHAS_MONTAJE(fecha)

MONTAR(montador,dormitorio, numDorMont)
CF: montador → MONTADORES
CF: dormitorio → MODELOS_DORMITORIO

COMPRAR(cliente, dormitorio , fec_compra_mod)
CF: cliente → CLIENTES
CF: dormitorio → MODELOS_DORMITORIO

MONTAR_HISTORICO(fecha, montador ,dormitorio, numDorMont)
CF: fecha → FECHAS_MONTAJE
CF: montador → MONTADORES
CF: dormitorio → MODELOS_DORMITORIO

Aviso

Si la relación ternaria tuviera cardinalidad M:N:P entonces el paso de dicha relación a modelo lógico relacional sería así:

MONTAR_HISTORICO(fecha, montador ,dormitorio, numDorMont)
CF: fecha → FECHAS_MONTAJE
CF: montador → MONTADORES
CF: dormitorio → MODELOS_DORMITORIO

✅ Solución Ejercicio 13

StarTrek

🔑 Modelo lógico-relacional

ACTORES(nombreCompleto, nacionalidad, fec_nac)

PERSONAJES(nombre, raza, graduacionMilitar, actor, capMilitar)
CF: actor → ACTORES
CF: capMilitar → PERSONAJES

PELICULAS(idpelicula, titulo, director, anyo_lanzamiento, progatonista)
CF: progatonista → PERSONAJES

CAPITULOS(titulo, temporada, orden_rodaje, fec_emision)

PLANETAS(codigo, nombre, galaxia)

NAVES(codigo, nombre, tripulantes)

APARECER(personaje, pelicula)
CF: personaje → PERSONAJES
CF: pelicula → PELICULAS

PARTICIPAR(capitulo, personaje)
CF: capitulo → CAPITULOS
CF: personaje → PERSONAJES

VISITAR(capitulo, planeta, nave, problema)
CF: capitulo → CAPITULOS
CF: planeta → PLANETAS
CF: nave → NAVES

✅ Solución Ejercicio 14

universidad con generalización

✅ Solución Ejercicio 15

Opción A

empresa naviera

Opción B

empresa naviera

✅ Solución Ejercicio 16

red de almacenes

✅ Solución Ejercicio 17

Opción A

películas de cine

Opción B

películas de cine

Opción C

películas de cine

✅ Solución Ejercicio 18

federacion de atletismo

✅ Solución Ejercicio 19

los animales hacen dieta

🔑 Modelo lógico-relacional

ESPECIES(codigo, descripcion)

ANIMALES(codigo, utilidad, cproductos, especie, dieta)
CF: especie → ESPECIES
CF: dieta → DIETA

DIETA(codigo, descripcion)

HISTORICO-DIETA(codigo, descripcion)

COMIDAS(codigo, nombre, hora_inicio, hora_fin)

ALIMENTOS(codigo, descripcion)

NUTRIENTES(codigo, descripción)

FECHA(fecha)

CONTIENE(alimento, nutriente)
CF: alimento → ALIMENTOS
CF: nutriente → NUTRIENTES

COMPOSICION_DIETA(alimento, comida, dieta, calimentos)
CF: alimento → ALIMENTOS
CF: comida → COMIDAS
CF: dieta → DIETA

HACEN_O_HANHECHO(fecha, animal, dieta_hecha)
CF: fecha → FECHA
CF: animal → ANIMALES
CF: dieta_hecha → HISTORICO_DIETA

✅ Solución Ejercicio 20

empresa de mercancías

🔑 Modelo lógico-relacional

PERSONAL(codigo, nombre, telefono, anyo_nac)

ADMINISTRATIVOS(personal, nivel_estudios)
CF: personal → PERSONAL

CONDUCTORES(personal, anyo_carnet, tipo_carnet)
CF: personal → PERSONAL

DELEGACIONES(nombre, telefono, ciudad)
CF: ciudad → CIUDADES

VIAJES (codigo, delegacion, descripción, camion)
CF: delegación → DELEGACIONES
CF: camion → CAMIONES

TRABAJA (personal,fecha_alta, delegacion, fec_baja)
CF: personal → PERSONAL
CF: fecha_alta → FECHAS
CF: delegación → DELEGACIONES

CIUDADES (cp, nombre)

CLIENTES (codigo, nombre, telefono)

RECORRER (cod_viaje, cod_del, ciudad, hora_llegada)
CF: (cod_viaje, cod_del) → VIAJES
CF: ciudad → CIUDAD

ENTREGAS (cod_viaje, cod_del, ciudad, cliente, paquetes_dejados, paquetes_recogidos)
CF: (cod_viaje, cod_del) → VIAJES
CF: ciudad → CIUDAD
CF: cliente → CLIENTES

CONDUCIR (cod_viaje, cod_del, conductor, dietas)
CF: (cod_viaje, cod_del) → VIAJES
CF: conductor → CONDUCTORES

CAMIONES (codigo, matricula, marca, tara)

✅ Solución Ejercicio 21

viajes

🔑 Modelo lógico-relacional

CIUDADES(cp, nombre)

DELEGACIONES(nombre, telefono, ciudad, delegacion_depende)
CF: delegacion_depende → DELEGACIONES
CF: ciudad → CIUDADES

VIAJES( delegacion , codigo , fec_viaje)
CF: delegacion → DELEGACIONES

RECORRIDO( delegacion, viaje , ciudad , hora_de_paso)
CF: delegacion, viaje → VIAJES
CF: ciudad → CIUDADES